#region File header

// Project: SharpWind, File: Control.cs
// Namespace: SharpWind.Gui.Controls, Class: Control
// Path: F:\Coder\Projekty\Windows\Dyplom\SharpWind\src\SharpWind\Gui\Controls, Author: Sebastian Haba (sho@gisz.net.pl)
// Code lines: 125, Size of file: 1,90 KB
// Creation date: 2007-03-29 12:38
// Last modified: 2007-04-01 13:14

#endregion

#region Using directives

using System.Drawing;

using SharpWind.Input;

#endregion

namespace SharpWind.Gui.Controls
{
	public abstract class Control
	{
		protected PointF location;

		public virtual PointF Location
		{
			get
			{
				return location;
			}
			set
			{
				location = value;
			}
		}

		protected SizeF size;

		public virtual SizeF Size
		{
			get
			{
				return size;
			}
			set
			{
				size = value;
			}
		}

		protected bool enabled = true;

		public virtual bool Enabled
		{
			get
			{
				return enabled;
			}
			set
			{
				enabled = value;
			}
		}

		protected bool visible = true;

		public virtual bool Visible
		{
			get
			{
				return this.visible;
			}
			set
			{
				this.visible = value;
			}
		}

		internal virtual void Render() {}

		internal virtual void MouseMove( MouseEventArgs e ) {}

		/// <summary>
		/// Mouse down
		/// </summary>
		/// <param name="e">E</param>
		internal virtual void MouseDown( MouseEventArgs e ) {} // MouseDown()

		/// <summary>
		/// Mouse up
		/// </summary>
		/// <param name="e">E</param>
		internal virtual void MouseUp( MouseEventArgs e ) {} // MouseUp()

		internal virtual void MousePress( MouseEventArgs e ) {} 

		/// <summary>
		/// Key down
		/// </summary>
		/// <param name="e">E</param>
		internal virtual void KeyDown( KeyboardEventArgs e ) {} // KeyDown()
	}
}